package com.ssy.lingxi.pay.api.model.vo.request.ccb;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 建行B2B普通商户支付请求参数
 *
 * @author HuangJieZhou
 * @version 2.0.0
 * @date 2021/12/20 19:25
 **/
@Data
public class CcbB2bPayVo implements Serializable {
    private static final long serialVersionUID = -7500706607546683686L;

    /**
     * 商户代码(客户号)
     */
    @NotBlank(message = "商户代码(客户号)不能为空")
    @Size(max = 21, message = "商户代码(客户号)最长21个字符")
    private String merchantId;

    /**
     * 商户柜台代码
     */
    @NotBlank(message = "商户柜台代码不能为空")
    @Size(max = 9, message = "商户柜台代码最长9个字符")
    private String posId;

    /**
     * 商户分行代码
     */
    @NotBlank(message = "分行代码不能为空")
    @Size(max = 30, message = "分行代码最长30个字符")
    private String branchId;

    /**
     * 柜台公钥
     */
    @NotBlank(message = "柜台公钥不能为空")
    private String publicKey;

    /**
     * 支付订单号
     */
    @NotBlank(message = "支付订单号不能为空")
    @Size(max = 30, message = "支付订单号最长30个字符")
    private String orderCode;

    /**
     * 付款金额
     */
    @NotNull(message = "付款金额不能为空")
    private BigDecimal payMent;

    /**
     * 查询密码
     */
    @NotBlank(message = "查询密码不能为空")
    private String pwd;

    /**
     * 透传参数，在回调通知中原样返回
     */
    private String attach;

    /**
     * 备注1 非必输，可指定支付帐号。如上送值123|1，可验证指定付款帐号必须是123，不要空格
     */
    private String remark1;

    /**
     * 备注2
     */
    private String remark2;

    /**
     * 支付订单超时时间 格式：yyyyMMddHHmmSS 订单处理截至时间。
     */
    @NotBlank(message = "支付订单超时时间不能为空")
    private String timeout;

}
